home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 July / 07_02.iso / software / mdmx / files / DreamweaverMXInstaller.exe / Disk1 / data1.cab / Configuration_En / Commands / Flash Text.js < prev    next >
Encoding:
JavaScript  |  2002-05-01  |  20.3 KB  |  598 lines

  1. // Copyright 2000-2002 Macromedia, Inc. All rights reserved.
  2. //*************** GLOBAL CONSTANTS *****************
  3. var helpDoc = MM.HELP_objFlashText;
  4. var TYPE_STR = "Flash Text";
  5. var FILE_CONFIG_PATH = dw.getConfigurationPath();
  6. var FILE_TEXT_TEMPLATE_PATH = FILE_CONFIG_PATH + "/Flash Objects/Flash Text/text template.swt";
  7. var STYLE_EXT_STR = "swt";
  8. var TYPE_PARAMETER = "dwType";
  9. var YIELD_PATH = "../Shared/MM/Images/yield.gif";
  10. var DEFAULT_SIZE = 30;
  11. var MAX_FILE_LENGTH = 23;
  12. //*************** GLOBAL VARIABLES *****************
  13. // UI Elements
  14. var MENU_FONTS, MENU_TARGET;
  15. var TEXT_SIZE, TEXT_URL, TEXT_SAVE_AS;
  16. var TEXTAREA_TEXT;
  17. var CHECKBOX_FONT, CHECKBOX_SIZE;
  18. var TEXT_TEXT_COLOR, TEXT_ROLLOVER_COLOR, TEXT_BG_COLOR;
  19. var COLORP_TEXT, COLORP_ROLLOVER, COLORP_BG;
  20. var IBTN_boldBtn, IBTN_italicBtn;
  21. var IBTN_rightAlignBtn, IBTN_leftAlignBtn, IBTN_centerAlignBtn, IBTN_justifyAlignBtn;
  22. var IBTN_GROUP_ALIGN;
  23. var AREA_WARNING;
  24. // other globals
  25. var ARRAY_TARGET_STR = new Array("","_blank","_parent","_self","_top");
  26. var REEDIT_SWF_PATH;
  27. var URL_BROWSE;
  28. var ALIGN_MAP = new Array();
  29. var ALIGNMENT = new Array("left","right","center","justified");
  30. var ALIGNMENT_BTNS = new Array("leftAlignBtn","rightAlignBtn","centerAlignBtn","justifyAlignBtn");
  31. var FLAG_OVERWRITE = new Object();
  32. FLAG_OVERWRITE.state = false;
  33. FLAG_OVERWRITE.reEdit = false;
  34. var FILE_CURRENT_DOC_PATH;
  35. var WIDTH_PERCENT;
  36. var HEIGHT_PERCENT;
  37. var LAST_SIZE=DEFAULT_SIZE;
  38. //******************* API **********************
  39.  
  40. function commandButtons()
  41. {
  42.    return new Array( MM.BTN_OK,  "cmdOK(); "
  43.            , MM.BTN_Apply, "cmdApply();"
  44.                    , MM.BTN_Cancel, "cmdCancel();"
  45.                    , MM.BTN_Help, 'displayHelp()');
  46. }
  47.  
  48. function cmdOK()
  49. {
  50.   var done = insertTextHTML();
  51.   if (done)
  52.     window.close();
  53.  
  54.   // check to see if accessibility option for media objects is turned on
  55.   prefsAccessibilityOption = dw.getPreferenceString("Accessibility", "Accessibility Media Options", "");
  56.   if(prefsAccessibilityOption == 'TRUE') {
  57.     var objDOM = dreamweaver.getDocumentDOM();
  58.     addAccessibility(objDOM);
  59.   }
  60. }
  61.  
  62. function cmdApply()
  63. {
  64.  var filename = document.saveAsField.getAttribute("value");
  65.  insertTextHTML();
  66.  FLAG_OVERWRITE.state = true;
  67.  FLAG_OVERWRITE.file = addExtention(filename, "swf");
  68. //  var dom = dw.getDocumentDOM();
  69. //  dom.insertHTML("test apply", true);
  70. }
  71.  
  72. function cmdCancel()
  73. {
  74.   window.close();
  75. }
  76.  
  77. function receiveArguments(swfPath)
  78. {
  79.   var fileName, fileObj;
  80.   var dom = dw.getDocumentDOM('document');
  81.   var sizeArray = SWFFile.getNaturalSize(swfPath);
  82.   var widthHTML = getSelectedNodeAttr("WIDTH",dom);
  83.   var heightHTML = getSelectedNodeAttr("HEIGHT",dom);
  84.   FILE_CURRENT_DOC_PATH = dw.getDocumentPath("document");
  85.   if (swfPath)
  86.   {
  87.     REEDIT_SWF_PATH = swfPath;
  88. //    fileObj = new File(REEDIT_SWF_PATH);
  89. //  fileName = fileObj.getName();
  90.     FLAG_OVERWRITE.state = true;
  91.   FLAG_OVERWRITE.reEdit = true;
  92. //    FLAG_OVERWRITE.file = fileName;
  93.   FLAG_OVERWRITE.file = absoluteToRelativeURL(swfPath, FILE_CURRENT_DOC_PATH,false);
  94.   WIDTH_PERCENT = widthHTML/sizeArray[0];
  95.     HEIGHT_PERCENT = heightHTML/sizeArray[1];
  96.   }
  97. }
  98. //***************** LOCAL FUNCTIONS  ******************
  99.  
  100. function initializeUI()
  101. {
  102.   var fontArray, targetArray, docFramesArray, swfButtonParams;
  103.   FILE_CURRENT_DOC_PATH = dw.getDocumentPath("document");
  104.   MENU_FONTS = new ListControl("fontMenu");
  105.   MENU_TARGET = new ListControl("targetMenu");
  106.   fontArray = filterFonts(dw.getSystemFontList("TrueType"));
  107.   if (!fontArray)
  108.   {
  109.     alert(MSG_NoFontsInstalled);
  110.   window.close();
  111.   return "";
  112.   }
  113.   else {
  114.     MENU_FONTS.setAll(fontArray,fontArray);
  115.     // set the default to relavant font for Double-byte languages
  116.     if ( dreamweaver.appVersion && ( dreamweaver.appVersion.indexOf('ja') != -1 ||  dreamweaver.appVersion.indexOf('ko') != -1) ) {  
  117.         if ( "macos" == DWfile.getPlatform() )
  118.             MENU_FONTS.pickValue(LABEL_DefaultSystemFontMac);
  119.         else
  120.             MENU_FONTS.pickValue(LABEL_DefaultSystemFontWin);
  121.     }
  122.   }
  123.   docFramesArray = dw.getDocumentDOM().getFrameNames();
  124.   targetArray = ARRAY_TARGET_STR;
  125.   if (docFramesArray)
  126.     targetArray = targetArray.concat(docFramesArray);
  127.   MENU_TARGET.setAll(targetArray, targetArray);
  128.   TEXT_SIZE = document.theForm.sizeField;
  129.   TEXTAREA_TEXT = document.theForm.textInputField;
  130.   TEXT_URL = document.theForm.linkField;
  131.   TEXT_SAVE_AS = document.theForm.saveAsField;
  132.   TEXT_TEXT_COLOR = document.theForm.textColorField;
  133.   TEXT_ROLLOVER_COLOR = document.theForm.rolloverColorField;
  134.   TEXT_BG_COLOR = document.theForm.bgColorField;
  135.   COLORP_TEXT = document.theForm.textColorP;
  136.   COLORP_ROLLOVER = document.theForm.rolloverColorP;
  137.   COLORP_BG = document.theForm.bgColorP;
  138.   CHECKBOX_FONT = document.theForm.fontCheckBox;
  139.   CHECKBOX_SIZE = document.theForm.sizeCheckBox;
  140.   IBTN_boldBtn = new ImageButton("boldBtn","IBTN_boldBtn","sSd");
  141.   IBTN_italicBtn = new ImageButton("italicBtn","IBTN_italicBtn","sSd");
  142.   IBTN_rightAlignBtn = new ImageButton("rightAlignBtn");
  143.   IBTN_leftAlignBtn = new ImageButton("leftAlignBtn");
  144.   IBTN_centerAlignBtn = new ImageButton("centerAlignBtn");
  145.   IBTN_GROUP_ALIGN = new ImageButtonGroup(IBTN_rightAlignBtn, IBTN_leftAlignBtn, IBTN_centerAlignBtn);
  146.   IBTN_GROUP_ALIGN.select('leftAlignBtn');
  147.  
  148.   for (var i=0; i< ALIGNMENT_BTNS.length; i++)
  149.     ALIGN_MAP[ALIGNMENT_BTNS[i]] = ALIGNMENT[i];
  150.   AREA_WARNING = document.theForm.warningMessage;
  151.   if (REEDIT_SWF_PATH)
  152.   {
  153. //  REEDIT_SWF_PATH =File.getFullUrl(REEDIT_SWF_PATH, FILE_CURRENT_DOC_PATH);  // modify text does not pass in full path
  154.     swfButtonParams = SWFFile.readFile(REEDIT_SWF_PATH);
  155.     swfButtonParams.unshift("templatePath");
  156. //    if (navigator.platform != "Win32")
  157.     if (!hasDoubleByteChar(swfButtonParams[1]))
  158.       swfButtonParams[1] = unescape(swfButtonParams[1]);
  159.     if (swfButtonParams.length % 2 != 0) // if last parameter has no value array is odd
  160.       swfButtonParams.push("");
  161.     populateUI(swfButtonParams,absoluteToRelativeURL(REEDIT_SWF_PATH, FILE_CURRENT_DOC_PATH,true));
  162.   }
  163.   else
  164.   {
  165.     updateUI("fontMenu");
  166.     TEXT_SAVE_AS.value = createUniqueFilename("text", getDocumentDir(FILE_CURRENT_DOC_PATH),MAX_FILE_LENGTH);
  167.   }
  168.   TEXTAREA_TEXT.focus();
  169.   TEXTAREA_TEXT.select();
  170.   return "";
  171. }
  172.  
  173. function updateUI(itemName)
  174. {
  175.   var styleAttribute, replacementStr,browseURL, pattern, theLink, fontStyles,theFont;
  176.   switch(itemName)
  177.   {
  178.     case "fontMenu":
  179.   {
  180.     if (CHECKBOX_FONT.checked == true)
  181.     {
  182.       theFont = MENU_FONTS.get();
  183.       replacementStr = "font-family:" + theFont + ";";
  184.       pattern = /font-family:.*;/ ;
  185.       updateStyle(TEXTAREA_TEXT,pattern, replacementStr);
  186.       (!hasDoubleByteChar(theFont)) ? IBTN_boldBtn.enable() : IBTN_boldBtn.disable();
  187. //      fontStyles = dw.getFontStyles(theFont);
  188. //      (fontStyles[0]==true) ? IBTN_boldBtn.enable() : IBTN_boldBtn.disable();
  189. //      (fontStyles[1]==true) ? IBTN_italicBtn.enable() : IBTN_italicBtn.disable();
  190.     }
  191.     break;
  192.   }
  193.   case "boldBtn":
  194.   {
  195. //    theFont = MENU_FONTS.get();
  196. //    fontStyles = dw.getFontStyles(theFont);
  197. //    if (IBTN_boldBtn.value == true && fontStyles[2]==false)
  198. //      IBTN_italicBtn.disable();
  199. //    else if (fontStyles[1]==true)
  200. //      IBTN_italicBtn.enable();
  201.   }
  202.   case "italicBtn":
  203.   {
  204. //    theFont = MENU_FONTS.get();
  205. //    fontStyles = dw.getFontStyles(theFont);
  206. //    if (IBTN_italicBtn.value == true && fontStyles[2]==false)
  207. //      IBTN_boldBtn.disable();
  208. //    else if (fontStyles[0]==true)
  209. //      IBTN_boldBtn.enable();
  210.   }
  211.   case "sizeField":
  212.   {
  213.     if (!isInteger(TEXT_SIZE.value))
  214.     {
  215.       TEXT_SIZE.value = LAST_SIZE;
  216.     }
  217.     else
  218.       LAST_SIZE = TEXT_SIZE.value
  219. /*
  220.     if (CHECKBOX_SIZE.checked == true)
  221.     {
  222.       replacementStr = "font-size:" + TEXT_SIZE.value + ";";
  223.       pattern = /font-size:\s*\w*\s*;/ ;
  224.       updateStyle(TEXTAREA_TEXT,pattern, replacementStr);
  225.     }
  226. */
  227.     break;
  228.   }
  229.   case "fontCheckBox":
  230.   {
  231.     if (CHECKBOX_FONT.checked == false)
  232.     {
  233.       replacementStr = "font-family:;";
  234.       pattern = /font-family:.*;/;
  235.       updateStyle(TEXTAREA_TEXT,pattern, replacementStr);
  236.     }
  237.     else
  238.       updateUI("fontMenu")
  239.     break;
  240.   }
  241. /*  case "sizeCheckBox":
  242.   {
  243.     if (CHECKBOX_SIZE.checked == false)
  244.     {
  245.       replacementStr = "font-size:;";
  246.       pattern = /font-size:\s*\w*\s*;/ ;
  247.       updateStyle(TEXTAREA_TEXT,pattern, replacementStr);
  248.     }
  249.     else
  250.       updateUI("sizeField");
  251.     break;
  252.   }
  253. */
  254.   case "linkField":
  255.   {
  256.     theLink = TEXT_URL.value;
  257.     if (isSiteRelative(theLink))
  258.       AREA_WARNING.innerHTML = createWarningMsgHTML(MSG_SiteRelLinkWarning, YIELD_PATH);
  259.     else if (theLink.indexOf("file:///")!=-1)
  260.       AREA_WARNING.innerHTML = createWarningMsgHTML(MSG_LocalURLLinkWarning, YIELD_PATH);
  261.     else
  262.       AREA_WARNING.innerHTML = "";
  263.     break;
  264.   }
  265.   case "saveAsField":
  266.   {
  267.     theLink = TEXT_URL.value;
  268.     theSaveLoc = TEXT_SAVE_AS.value;
  269.     if (theSaveLoc.indexOf('/') != -1){
  270.       if (isSiteRelative(theLink)){
  271.         AREA_WARNING.innerHTML = createWarningMsgHTML(MSG_SiteRelLinkWarning, YIELD_PATH);
  272.         TEXT_URL.focus();
  273.         TEXT_URL.select();
  274.       }else if (isDocRel(theLink) && theLink!="#"){
  275.         AREA_WARNING.innerHTML = createWarningMsgHTML(MSG_DocRelLinkWarning, YIELD_PATH);
  276.         TEXT_URL.focus();
  277.         TEXT_URL.select();
  278.       }else if (theLink.indexOf("file:///")!=-1){
  279.         AREA_WARNING.innerHTML = createWarningMsgHTML(MSG_LocalURLLinkWarning, YIELD_PATH);
  280.         TEXT_URL.focus();
  281.         TEXT_URL.select();
  282.       }else{
  283.         AREA_WARNING.innerHTML = "";
  284.       }
  285.     }
  286.     break;
  287.   }
  288.   case "linkButton":
  289.   {
  290.     browseURL = dreamweaver.browseForFileURL("select",LABEL_Select, false, true);
  291.     if (browseURL)
  292.       TEXT_URL.setAttribute("value", browseURL);
  293.     updateUI("linkField");
  294.     break;
  295.   }
  296.   case "saveAsButton":
  297.   {
  298. //    browseURL = dreamweaver.browseForFolderURL(LABEL_SelectFolder);
  299.     browseURL = dreamweaver.browseForFileURL("save",LABEL_Select, false, true);
  300.     browseURL = absoluteToRelativeURL(browseURL, FILE_CURRENT_DOC_PATH,false);
  301.     if (browseURL)
  302.       TEXT_SAVE_AS.setAttribute("value", browseURL);
  303.     break;
  304.   }
  305.   case "textColorP":
  306.   {
  307.     updateColorPicker("colorPicker", COLORP_TEXT, TEXT_TEXT_COLOR);
  308.     if (COLORP_TEXT.value == "")
  309.       TEXT_TEXT_COLOR.setAttribute("value","#000000");
  310.   }
  311.     case "textColorField":
  312.   {
  313.     updateColorPicker("colorField", COLORP_TEXT, TEXT_TEXT_COLOR);
  314. //    replacementStr = "color:" + COLORP_TEXT.value + ";";
  315. //    pattern = /color:\s*\W*\w*\s*;/ ;
  316. //    updateStyle(TEXTAREA_TEXT,pattern, replacementStr);
  317.     if (COLORP_TEXT.value == "")
  318.     {
  319.       TEXT_TEXT_COLOR.setAttribute("value","#000000");
  320.     updateColorPicker("colorField", COLORP_TEXT, TEXT_TEXT_COLOR);
  321.     }
  322.     break;
  323.   }
  324.   case "rolloverColorP":
  325.     updateColorPicker("colorPicker", COLORP_ROLLOVER, TEXT_ROLLOVER_COLOR);
  326.     case "rolloverColorField":
  327.     updateColorPicker("colorField", COLORP_ROLLOVER, TEXT_ROLLOVER_COLOR);
  328.   case "bgColorP":
  329.     updateColorPicker("colorPicker", COLORP_BG, TEXT_BG_COLOR);
  330.     case "bgColorField":
  331.     updateColorPicker("colorField", COLORP_BG, TEXT_BG_COLOR);
  332.   }
  333. }
  334.  
  335. // populates UI when re-editing
  336. function populateUI(paramArray, fileName)
  337. {
  338.   var updateArray = new Array("fontMenu","sizeField","textColorP","rolloverColorP","bgColorP","linkField");
  339.   var theTarget = getValueFromParameters("window",paramArray);
  340.   var theFont = getValueFromParameters("font",paramArray);
  341.   var theLink = getValueFromParameters("url",paramArray);
  342.   var docDOM = dw.getDocumentDOM('document');
  343.   var bgcolor = getSelectedNodeAttr("BGCOLOR",docDOM);
  344.   if (!MENU_FONTS.pickValue(theFont))
  345.   {
  346.     if (!confirm(errMsg(MSG_FontDoesNotExist,theFont)))
  347.     window.close();
  348.   }
  349. //  TEXT_SIZE.value = (getValueFromParameters("size",paramArray)/72);
  350.   TEXT_SIZE.value = (getValueFromParameters("size",paramArray)/20);
  351.   if (getValueFromParameters("bold",paramArray)=="true")
  352.     IBTN_boldBtn.setValue(true);
  353.   if (getValueFromParameters("italic",paramArray)=="true")
  354.     IBTN_italicBtn.setValue(true);
  355.   // ** do alignment
  356.   COLORP_TEXT.value = getValueFromParameters("color",paramArray);
  357.   COLORP_ROLLOVER.value = getValueFromParameters("rollovercolor",paramArray);
  358. //  COLORP_BG.value = getValueFromParameters("bgcolor",paramArray);
  359.   COLORP_BG.value = bgcolor;
  360.   TEXTAREA_TEXT.value = getValueFromParameters("text",paramArray);
  361.   TEXT_URL.value = (theLink == "n/a") ? "" : theLink ;
  362.   TEXT_SAVE_AS.value = fileName;
  363.   if (!MENU_TARGET.pickValue(theTarget))
  364.   {
  365.     if (!confirm(errMsg(MSG_FrameNotFound, theTarget)))
  366.       window.close();
  367.   }
  368.   for (var i=0; i<ALIGNMENT.length; i++)
  369.   {
  370.     align = getValueFromParameters("alignment",paramArray);
  371.     if (align == ALIGNMENT[i])
  372.     IBTN_GROUP_ALIGN.select(ALIGNMENT_BTNS[i]);
  373.   }
  374.   for (var i=0; i< updateArray.length; i++)
  375.     updateUI(updateArray[i]);
  376. }
  377.  
  378. function insertTextHTML()
  379. {
  380.   var data, outputFilePath, canCreateFile=false;
  381.   var success=false, createFileMsg;
  382.   var theLink = TEXT_URL.value;
  383.   var fileName = TEXT_SAVE_AS.value;
  384.   var dom = dw.getDocumentDOM();
  385.   var selectedNode,wasPlaying, temp1, temp2;
  386.  
  387.   if (dom.canStopPlugin())
  388.   {
  389.     dom.stopPlugin();
  390.   wasPlaying = true;
  391.   }
  392.   if (fileName.charAt(0) == " ")
  393.   {
  394.     alert(MSG_FilenameStartWithSpace);
  395.   return false;
  396.   }
  397.   if (TEXTAREA_TEXT.value == "")
  398.   {
  399.     alert(MSG_PleaseEnterText);
  400.   return false;
  401.   }
  402.   if (!fileName)
  403.     alert(MSG_SaveAsFieldIsEmpty);
  404.   else if ((outputFilePath = resolveFilePath(fileName,FILE_CURRENT_DOC_PATH,"swf")) == "")
  405.     alert(errMsg(MSG_InvalidFileName,fileName));
  406.   else
  407.   {
  408.     outputFilePath = truncateFileName(MAX_FILE_LENGTH, outputFilePath);
  409.     if (!checkLink(theLink,outputFilePath,FILE_CURRENT_DOC_PATH))
  410.       return false;
  411.   if (DWfile.exists(outputFilePath) && DWfile.getAttributes(outputFilePath)=="R")
  412.   {
  413.     alert(errMsg(MSG_ReadOnlyFile,outputFilePath));
  414.     return false;
  415.   }
  416.   if (!DWfile.exists(outputFilePath) || (FLAG_OVERWRITE.state == true && FLAG_OVERWRITE.file == addExtention(fileName, "swf")))
  417.     canCreateFile=true;
  418.   else if (confirm(errMsg(MSG_FileAlreadyExists, outputFilePath)))
  419.     canCreateFile=true;
  420.   if (canCreateFile==true)
  421.   {
  422.     if (TEXTAREA_TEXT.value.length > 1024 && !confirm(MSG_ExceedCharacterLimit))
  423.       return false;
  424.     data = generateData();
  425.       MM.setBusyCursor();
  426.     if (navigator.platform == "Win32")
  427.       createFileMsg = SWFFile.createFile(FILE_TEXT_TEMPLATE_PATH,data,outputFilePath);
  428.     else{
  429.       temp1 = (hasDoubleByteChar(FILE_TEXT_TEMPLATE_PATH)) ?   FILE_TEXT_TEMPLATE_PATH : escape(FILE_TEXT_TEMPLATE_PATH);   // escape = high ascii bug on mac
  430.       temp2 = (hasDoubleByteChar(outputFilePath)) ?   outputFilePath : escape(outputFilePath);
  431.       createFileMsg = SWFFile.createFile(temp1,data,temp2);
  432.     }
  433.     MM.clearBusyCursor();
  434.       if (createFileMsg=="noError")
  435.     {
  436.       if (!FLAG_OVERWRITE.reEdit){
  437.  
  438.           var flashTag= createFlashHTML(outputFilePath,isDocRel(theLink));
  439.           dom.insertHTML(flashTag, FLAG_OVERWRITE.state);
  440.       }
  441.  
  442.     else
  443.     {
  444.       selectedNode = dom.getSelectedNode();
  445.       editTextAttribute(outputFilePath,selectedNode);
  446. // **** next line is a hack that needs to be removed when setSelectedNode bug fixed
  447.       selectedNode.outerHTML = selectedNode.outerHTML;
  448. //      dom.setSelectedNode(selectedNode);
  449.     }
  450.     dom.notifyFlashObjectChanged();
  451.     success = true;
  452.     }
  453.     else
  454.     {
  455.       alert(generatorErrorMsg(createFileMsg,fileName));
  456.     }
  457.   }
  458.   }
  459.   if (wasPlaying)
  460.     dom.playPlugin();
  461.   return success;
  462. }
  463.  
  464. function generateData()
  465. {
  466.   var retVal = new Array();
  467.   var theLink = TEXT_URL.value;
  468.   var theTarget = MENU_TARGET.get();
  469.   var rolloverColor = TEXT_ROLLOVER_COLOR.value;
  470.   var theText = TEXTAREA_TEXT.value;
  471.   retVal[0] = TYPE_PARAMETER;
  472.   retVal[1] = TYPE_STR;
  473.   retVal[2] = "text";
  474.   if (theText.length > 1024)
  475.     retVal[3] = theText.substr(0,1024);
  476.   else
  477.     retVal[3] = theText;
  478.   retVal[4] = "color";
  479.   retVal[5] = TEXT_TEXT_COLOR.value;
  480.   retVal[6] = "font";
  481.   retVal[7] = MENU_FONTS.get();
  482.   retVal[8] = "size";
  483.   retVal[9] = convertPtToTwip(TEXT_SIZE.value);
  484.   retVal[10] = "url";
  485.   retVal[11] = (theLink) ? theLink : "n/a";
  486.   retVal[12] = "window";
  487.   retVal[13] = (theTarget) ? theTarget : "_self";
  488.   retVal[14] = "rollovercolor";
  489.   retVal[15] = (rolloverColor) ? rolloverColor : "none";
  490.   retVal[16] = "shrinkwrap";
  491.   retVal[17] = true;
  492.   retVal[18] = "alignment";
  493.   retVal[19] = ALIGN_MAP[IBTN_GROUP_ALIGN.getSelectedButtonName()];
  494.   retVal[20] = "bold";
  495.   retVal[21] = IBTN_boldBtn.value;
  496.   retVal[22] = "italic";
  497.   retVal[23] = IBTN_italicBtn.value;
  498. //  retVal[24] = "bgcolor";
  499. //  retVal[25] = TEXT_BG_COLOR.value;
  500.   return retVal;
  501. }
  502.  
  503. function createFlashHTML(swfURL, docRelLink)
  504. {
  505.   var retVal= new Array();
  506.   var baseValue = ".";
  507.   var sizeArray = SWFFile.getNaturalSize(swfURL);
  508.   var width, height;
  509.   var bgcolor = document.bgColorField.value;
  510.   var docRelURL = absoluteToRelativeURL(swfURL, FILE_CURRENT_DOC_PATH,true);
  511.   if (sizeArray)
  512.   {
  513.     width = sizeArray[0];
  514.     height = sizeArray[1];
  515.   }
  516.   else
  517.   {
  518.     width = 32;
  519.   height = 32;
  520.   }
  521.   retVal.push('<OBJECT CLASSID="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"');
  522.   retVal.push(' CODEBASE="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0"');
  523.   retVal.push(' WIDTH="' + width + '" HEIGHT="'+ height + '">\n');
  524.   retVal.push('<PARAM NAME="movie" VALUE="' + docRelURL + '"> <PARAM NAME="quality" VALUE="high">\n' );
  525.   if (docRelLink) // chould check to see if link if doc relative
  526.     retVal.push('<PARAM NAME="base" VALUE="' + baseValue + '">\n');
  527.   if (bgcolor)
  528.     retVal.push('<PARAM NAME="bgcolor" VALUE="' + bgcolor + '">\n');
  529.   retVal.push('<PARAM NAME="scale" VALUE="exactfit">\n');
  530.   retVal.push('<EMBED SRC="' + docRelURL +'"');
  531.   if (docRelLink)
  532.     retVal.push( ' BASE="' + baseValue+ '" ');
  533.   retVal.push(   ' QUALITY="high" PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" ' +
  534.          'TYPE="application/x-shockwave-flash" SCALE="exactfit" ');
  535.   retVal.push('WIDTH="' + width + '" HEIGHT="'+ height +'" ');
  536.   if (bgcolor)
  537.     retVal.push('BGCOLOR="' + bgcolor + '"');
  538.   retVal.push('>'+'</EMBED>\n' + '</OBJECT>');
  539.   return  retVal.join("");
  540. }
  541.  
  542. function updateFlashHTML()
  543. {
  544.  
  545. }
  546.  
  547. function editTextAttribute(outputFilePath,selectedNode)
  548. {
  549.   var sizeArray = SWFFile.getNaturalSize(outputFilePath);
  550.   var bgcolor = document.bgColorField.value;
  551.   var width = Math.round(sizeArray[0]*WIDTH_PERCENT);
  552.   var height = Math.round(sizeArray[1]*HEIGHT_PERCENT) ;
  553.   var tagsToAdd = new Array();
  554. //  alert (width + " " + height);
  555.   var theLink = TEXT_URL.value;
  556.   var docRelURL = absoluteToRelativeURL(outputFilePath, FILE_CURRENT_DOC_PATH,true);
  557.   if (outputFilePath != REEDIT_SWF_PATH)
  558.   {
  559.     setFlashAttribute("PARAM","MOVIE",docRelURL,selectedNode,tagsToAdd);
  560.     setFlashAttribute("EMBED","SRC",docRelURL,selectedNode);
  561.   }
  562.   setFlashAttribute("OBJECT","WIDTH",width,selectedNode);
  563.   setFlashAttribute("OBJECT","HEIGHT",height,selectedNode);
  564.   setFlashAttribute("EMBED","WIDTH",width,selectedNode);
  565.   setFlashAttribute("EMBED","HEIGHT",height,selectedNode);
  566.   setFlashAttribute("EMBED","BGCOLOR",bgcolor,selectedNode);
  567.   setFlashAttribute("PARAM","BGCOLOR",bgcolor,selectedNode,tagsToAdd);
  568.   if (isDocRel(theLink))
  569.   {
  570.     setFlashAttribute("PARAM","BASE",".",selectedNode,tagsToAdd);
  571.     setFlashAttribute("EMBED","BASE",".",selectedNode);
  572.   }
  573.   else
  574.   {
  575.     setFlashAttribute("PARAM","BASE","",selectedNode,tagsToAdd,true);
  576.   setFlashAttribute("EMBED","BASE","",selectedNode);
  577.   }
  578.   if (tagsToAdd.length>0)
  579.     selectedNode.innerHTML = tagsToAdd.join("") + selectedNode.innerHTML;
  580. }
  581.  
  582. ///////////////////////////////////////////////////////////////////
  583. //  addAccessibility: called when Accessibility Option is turned on
  584. //  
  585. // receives: current document object
  586. // returns : nothing
  587. //
  588. //  Flash Options.htm dialog collects the attributes.
  589.  
  590. function addAccessibility(objDom) {
  591.    var cmdFile = dreamweaver.getConfigurationPath() + "/Commands/Flash Options.htm";
  592.    var cmdDOM = dreamweaver.getDocumentDOM(cmdFile);
  593.    
  594.    cmdDOM.parentWindow.setFormItem(objDom);
  595.    dreamweaver.popupCommand("Flash Options.htm");
  596.  
  597. }
  598.